package com.lancoo.ccas52.pojo.response.digitization;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @ClassName BuildingInfo
 * @Description 获取楼宇-楼层-课室-设备的融合数据
 * @Author quin
 * @Date 2023/3/1 13:36
 */
@NoArgsConstructor
@Data
public class BuildingInfo {
    @JsonProperty("buildingInfo")
    private BuildingInfoDTO buildingInfo;
    @JsonProperty("buildEquipments")
    private Object buildEquipments;
    @JsonProperty("buildingFloors")
    private List<BuildingFloorsDTO> buildingFloors;

    @NoArgsConstructor
    @Data
    public static class BuildingInfoDTO {
        @JsonProperty("buildingId")
        private Integer buildingId;
        @JsonProperty("buildingName")
        private String buildingName;
        @JsonProperty("schoolId")
        private String schoolId;
        @JsonProperty("flag")
        private Integer flag;
        @JsonProperty("buildingType")
        private String buildingType;
        @JsonProperty("floorNumber")
        private Integer floorNumber;
        @JsonProperty("undergroundNumber")
        private Integer undergroundNumber;
        @JsonProperty("abovegroundNumber")
        private Integer abovegroundNumber;
        @JsonProperty("sizeX")
        private Integer sizeX;
        @JsonProperty("sizeY")
        private Integer sizeY;
        @JsonProperty("sizeZ")
        private Integer sizeZ;
        @JsonProperty("leftFocus")
        private Integer leftFocus;
        @JsonProperty("topFocus")
        private Integer topFocus;
        @JsonProperty("imgUrl")
        private String imgUrl;
        @JsonProperty("bgColor")
        private String bgColor;
        @JsonProperty("remark")
        private String remark;
        @JsonProperty("rPerson")
        private String rPerson;
        @JsonProperty("rPersonNumber")
        private String rPersonNumber;
        @JsonProperty("updateTime")
        private String updateTime;
        @JsonProperty("reserve")
        private String reserve;
        @JsonProperty("model3dUrl")
        private String model3dUrl;
        @JsonProperty("backgroundImg")
        private String backgroundImg;
        @JsonProperty("campusId")
        private Integer campusId;
        @JsonProperty("wisdomFlag")
        private Integer wisdomFlag;
        @JsonProperty("stateFlag")
        private Integer stateFlag;
        @JsonProperty("thirdPartKey")
        private String thirdPartKey;
        @JsonProperty("buildingLocations")
        private Object buildingLocations;
        @JsonProperty("equipments")
        private Object equipments;
        @JsonProperty("count")
        private Object count;
    }

    @NoArgsConstructor
    @Data
    public static class BuildingFloorsDTO {
        @JsonProperty("buildFloor")
        private Integer buildFloor;
        @JsonProperty("floorRooms")
        private List<FloorRoomsDTO> floorRooms;

        @NoArgsConstructor
        @Data
        public static class FloorRoomsDTO {
            @JsonProperty("roomInfo")
            private RoomInfoDTO roomInfo;
            @JsonProperty("roomEquipments")
            private Object roomEquipments;

            @NoArgsConstructor
            @Data
            public static class RoomInfoDTO {
                @JsonProperty("roomId")
                private Integer roomId;
                @JsonProperty("roomName")
                private String roomName;
                @JsonProperty("roomPwd")
                private String roomPwd;
                @JsonProperty("roomType")
                private Integer roomType;
                @JsonProperty("functionType")
                private Integer functionType;
                @JsonProperty("belongBuilding")
                private Integer belongBuilding;
                @JsonProperty("buildingName")
                private String buildingName;
                @JsonProperty("buildingFloor")
                private Integer buildingFloor;
                @JsonProperty("rPersonName")
                private String rPersonName;
                @JsonProperty("rPersonPhone")
                private String rPersonPhone;
                @JsonProperty("roomStatus")
                private Integer roomStatus;
                @JsonProperty("seatCount")
                private Integer seatCount;
                @JsonProperty("seatRowCount")
                private Integer seatRowCount;
                @JsonProperty("seatColCount")
                private Integer seatColCount;
                @JsonProperty("seatArrangeDirect")
                private Integer seatArrangeDirect;
                @JsonProperty("seatFlag")
                private Integer seatFlag;
                @JsonProperty("equipmentFactoryId")
                private Integer equipmentFactoryId;
                @JsonProperty("deviceFactory")
                private Object deviceFactory;
                @JsonProperty("teacherMachineIp")
                private String teacherMachineIp;
                @JsonProperty("teacherMachineMac")
                private String teacherMachineMac;
                @JsonProperty("teacherMachineType")
                private Integer teacherMachineType;
                @JsonProperty("device")
                private Integer device;
                @JsonProperty("hostMacAddr")
                private String hostMacAddr;
                @JsonProperty("electricType")
                private Integer electricType;
                @JsonProperty("centralIp")
                private String centralIp;
                @JsonProperty("centralPort")
                private Integer centralPort;
                @JsonProperty("roomPanelStatus")
                private Integer roomPanelStatus;
                @JsonProperty("updateTime")
                private String updateTime;
                @JsonProperty("collegeId")
                private String collegeId;
                @JsonProperty("campus")
                private String campus;
                @JsonProperty("thirdPartKey")
                private String thirdPartKey;
                @JsonProperty("campusId")
                private Integer campusId;
            }
        }
    }
}
